Network functions virtualization (NFV) is enables network functions, e.g., routing, loadbalancing, firewalls, deep packet inspection, etc., to run on general-purpose hardware. In other words, network functions can be virtualized in the cloud having networked hardware resources (e.g., network, compute, and storage resources). Virtualization of network functions enables a network administrator to easily take network functions in and out of service, and even scale them up and down. Network functions can be created on demand, and orchestration engines are often available to manage the network functions. As a result, many enterprise networks have adopted NFV for implementing their networks to simply network operations and lower operational costs.